perm filename BNF.PAT[BNF,JRA] blob
sn#028950 filedate 1973-03-09 generic text, type T, neo UTF8
00100
00200
00300 (DEFPROP >PREDLET<
00400 (LAMBDA(X)
00500 (OUTRUL X (FUNCTION (LAMBDA NIL (COND ((MEMQ (STK1) (APPEND INFPREDLET PREPREDLET)) (STK1)) (*NIL*))))))
00600 EXPR)
00700
00800 (DEFPROP >MATCH<
00900 (LAMBDA(%N)
01000 (OUTRUL %N
01100 (FUNCTION
01200 (LAMBDA NIL
01300 (COND ((AND (MATCH (QUOTE (%NG . *))) (>PRED< 0)) (LIST ONEGSGN (STK0)))
01400 ((AND (MATCH (QUOTE (%NG *))) (>PREDLET< 0)) (LIST ONEGSGN (STK0)))
01500 ((AND (MATCH (QUOTE (CL (* . *)))) (>ID< 1) (>VARLIST< 0))
01600 (LIST (STK1) (QUOTE (:CH /[)) (STK0) (QUOTE (:CH /]))))
01700 ((>PRED< 1) (STK1))
01800 ((AND (MATCH (QUOTE (*))) (>PREDLET< 0)) (STK0))
01900 ((AND (MATCH (QUOTE (CL *))) (>ID< 0)) (STK0))
02000 ((AND (MATCH (QUOTE (CL *))) (>NUMBER< 0)) (STK0))
02100 ((>TM< 1) (STK1))
02200 ((AND (MATCH (QUOTE (*))) (>FNLET< 0)) (STK0)))))))
02300 EXPR)
02400
02500 (DEFPROP >TERM<
02600 (LAMBDA(%N)
02700 (OUTRUL %N
02800 (FUNCTION
02900 (LAMBDA NIL
03000 (COND ((AND (MATCH (QUOTE (DEPTH (LIST *)))) (>VARL< 0))
03100 (LIST (QUOTE (:CH ∂)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
03200 ((AND (MATCH (QUOTE (DEPTH1 (LIST *)))) (>VART< 0))
03300 (LIST (QUOTE (:CH ∂)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
03400 ((AND (MATCH (QUOTE (DEPTH (CDR *)))) (>VARC< 0))
03500 (LIST (QUOTE (:CH ∂)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
03600 ((AND (MATCH (QUOTE (TREEDEP *))) (>VARC< 0))
03700 (LIST (QUOTE (:CH β)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
03800 ((>VARL< 1) (STK1))
03900 ((>VART< 1) (STK1))
04000 ((>VARC< 1) (STK1))
04100 ((AND (MATCH (QUOTE (TREE *))) (>VARC< 0))
04200 (LIST (QUOTE TR) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
04300 ((AND (MATCH (QUOTE (LENGTH (CDR *)))) (>VARC< 0))
04400 (LIST (QUOTE (:CH α)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
04500 ((AND (MATCH (QUOTE (NOSYM *))) (>VART< 0))
04600 (LIST (QUOTE (:CH α)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
04700 ((AND (MATCH (QUOTE (NOSYM *))) (>VARL< 0))
04800 (LIST (QUOTE (:CH α)) (QUOTE (:CH /()) (STK0) (QUOTE (:CH /)))))
04900 ((EQ (QUOTE %PL) (STK1)) (QUOTE (:CH /+)))
05000 ((EQ (QUOTE %NG) (STK1)) (QUOTE (:CH /-)))
05100 ((AND (MATCH (QUOTE (AND . *))) (>MATCHLIST< 0))
05200 (LIST (QUOTE (:CH ⊂)) (STK0) (QUOTE (:CH ⊃))))
05300 ((AND (MATCH (QUOTE (OR . *))) (>MATCHLIST< 0))
05400 (LIST (QUOTE (:CH ⊃)) (STK0) (QUOTE (:CH ⊂))))
05500 ((>NUMBER< 1) (STK1))
05600 ((>MATCH< 1) (STK1)))))))
05700 EXPR)